package com.kuang.springclound.config;

import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

@Configuration
public class ConfigBean {//@Configuration 等于-- spring 的 applicationContext.xml

    @Bean
    /*
    配置负载均衡实现RestTemplate，‌@LoadBalanced注解‌是Spring Cloud中的一个注解，
    用于标记RestTemplate bean，使其在服务调用时实现负载均衡。通过在RestTemplate上添加@LoadBalanced注解，
    可以自动启用负载均衡功能，使得RestTemplate在调用服务时能够根据负载均衡算法选择目标服务的实例，而不是直接使用IP地址‌
    Ribbon--负载均衡：开启负载均衡能力
     */
    @LoadBalanced
    public RestTemplate getRestTemplate() {
        return new RestTemplate();
    }

    //IRule
    //RoundRobinRule ： 轮询（默认）
    //RandomRule ： 随机
    //AvailabilityFilteringRule : 会先过滤掉，跳闸，访问故障的服务~,对剩下的进行轮询
    //RetryRule ：重试，会先按照轮询获取服务，如果服务获取失败，则会在指定时间内重试

}
